package br.ufc.si.managedBean;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
import javax.persistence.PersistenceException;
import javax.servlet.http.HttpSession;

import modelo.Perfil;
import dao.PerfilDao;

@ManagedBean(name = "perfilBean")
public class PerfilBean {

	Perfil perfil;
	String email;

	public PerfilBean() {
		this.perfil = new Perfil();
		FacesContext fc = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) fc.getExternalContext().getSession(
				true);
		email = (String) session.getAttribute("email");
		perfil.setEmail(email);
	}

	public String atualizar() throws ClassNotFoundException {
		PerfilDao perfilDao = new PerfilDao();
		perfil.setEmail(email);
		Flash flash = FacesContext.getCurrentInstance().getExternalContext()
				.getFlash();
		flash.setKeepMessages(true);

		perfil.setFoto("/img/inquilino/perfil/" + email + ".jpg");

		try {
			perfilDao.update(perfil);
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_INFO,
							"Perfil editado com sucesso", ""));
			return "/inquilino/visualizarperfilusuario";
		} catch (PersistenceException ex) {
			FacesContext.getCurrentInstance().addMessage(
					null,
					new FacesMessage(FacesMessage.SEVERITY_ERROR,
							"Erro com o banco de dados", ""));
			return "/inquilino/indexUsuario";
		}

	}

	public String editar() throws ClassNotFoundException {
		PerfilDao perfilDao = new PerfilDao();
		perfil = perfilDao.find(email);

		return "/inquilino/editarperfilusuario";
	}

	public String visualizar() throws ClassNotFoundException {
		PerfilDao perfilDao = new PerfilDao();
		perfil = perfilDao.find(email);

		return "/inquilino/visualizarperfilusuario.xhtml";
	}

	public String cancelar() {
		return "indexUsuario";
	}

	public Perfil getPerfil() {
		return perfil;
	}

	public void setPerfil(Perfil perfil) {
		this.perfil = perfil;
	}

	public PerfilDao getPerfilDao(){
		return new PerfilDao();
	}
	
}
